package ee.karileet.productcatalogue.service;
import ee.karileet.productcatalogue.model.Manufactor;
import ee.karileet.productcatalogue.model.Product;

/**
 * @author Markus Karileet
 * @version 1.0
 * @created 29-nov-2013 16:09:21
 */
public interface IProduct {

	/**
	 * 
	 * @param product    product
	 */
	public boolean addProduct(Product product);

	/**
	 * 
	 * @param productId    productId
	 * @throws Exception 
	 */
	public Product getProduct(int productId) throws Exception;

	/**
	 * 
	 * @param group    group
	 * @throws Exception 
	 */
	public java.util.Set<Product> listGroupProducts(int groupId) throws Exception;

	/**
	 * 
	 * @param manufactor    manufactor
	 * @throws Exception 
	 */
	public java.util.Set<Product> listManufactorProducts(int manufactorId) throws Exception;

	/**
	 * 
	 * @param product    product
	 * @throws Exception 
	 */
	public void removeProduct(int productId) throws Exception;

	/**
	 * 
	 * @param product    product
	 */
	public boolean updateProduct(Product product);
	
	public java.util.HashMap<Manufactor, java.util.Set<Product>> listGroupProductsByManufactor(int groupId) throws Exception;

}